/*******************************************************************************
*  file    : testutils.hpp
*  created : 25.06.2014
*  author  : Slyshyk Oleksiy (alexSlyshyk@gmail.com)
*******************************************************************************/

#ifndef TESTUTILS_HPP
#define TESTUTILS_HPP

#include <QObject>
#include <QMap>

#include <interfaces.hpp>

class TestUtils : public QObject
{
    Q_OBJECT
public:
    explicit TestUtils(QObject *parent = 0);

signals:
    void endAllTests();
public slots:
    void startTests();
private:
    void loadPlugins();
    void populatePlugins(QObject *plugin);
private:
    bool test_linearization();
    bool test_func_linearization();
    bool test_save_load_object_interface();

private:
    QMap<QString, SaveLoadObjectInterface*> saveFormatPlugins_;
};

#endif // TESTUTILS_HPP
